package com.it.controller;

import com.it.pojo.SysFood;
import com.it.pojo.SysImage;
import com.it.service.SysFoodService;
import com.it.service.SysImageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @Controller
 *   作用1： 将当前对象的创建交给spring管理
 *   作用2：作为控制层代码的标识
 */
@Controller
public class SysFoodController {

	@Autowired	//自动注入(由spring创建当前对象并为属性赋值)
	private SysFoodService sysFoodService;

	@Autowired	//自动注入(由spring创建当前对象并为属性赋值)
	private SysImageService sysImageService;
	
	/** 1.查询所有食物信息 */
	@RequestMapping("/sysFoodList")
	public String sysFoodList(Model model){
		//调用service层的findAll方法，查询所有的食物信息
		try{
			List<SysFood> list = sysFoodService.findAll();

			//将所有食物信息的list集合存入model中，带到JSP显示
			model.addAttribute("list", list);

		} catch(Exception e){
			e.printStackTrace();
		}

		return "sys/food/list";
	}

	/**
	 * 2.根据id删除食物信息
	 */
	@RequestMapping("/sysFoodDelete")
	public String sysFoodDelete(String id){
		//调用deleteById方法, 根据id删除食物
		sysFoodService.deleteById(id);
		
		return "redirect:/sysFoodList";
	}
	
	/** 3.添加食物信息 */
	@RequestMapping("/sysFoodAdd")
	public String sysFoodAdd(SysFood sysFood){
		//System.out.println(sysFood);
		//1.调用SysFoodService层的addSysFood方法, 添加食物信息
		sysFoodService.addSysFood(sysFood);
		
		return "redirect:/sysFoodList";
	}
	
	/** 4.根据id修改食物信息
	 *  4.1.先根据id查询当前食物的信息 */
	@RequestMapping("/sysFoodInfo")
	public String sysFoodInfo(String id, Model model){
		//1.根据id查询食物信息
		SysFood sysFood = sysFoodService.findById(id);
		System.out.println(sysFood);
		
		//2.将食物信息存入model中(存入request域中)
		model.addAttribute("food", sysFood);
		//3.转向sysFood_update.jsp
		return "sys/food/update";
	}
	
	/** 4.根据id修改食物信息
	 *  4.1.先根据id查询当前食物的信息
	 *  4.2.再根据id修改当前食物的信息 */
	@RequestMapping("/sysFoodUpdate")
	public String sysFoodUpdate(SysFood sysFood){
		//System.out.println(sysFood);
		//1.调用sysFoodService的updateById方法修改食物信息
		sysFoodService.updateById(sysFood);
		//2.转向查询所有食物的方法
		return "redirect:/sysFoodList";
	}

	/** 5.访问菜品上传页面 */
	@RequestMapping("/toSysFoodImagePage")
	public String toSysFoodImagePage(String id, Model model){
		model.addAttribute("linkId", id);
		List<SysImage> images = sysImageService.findByLink(id, 2);
		if(images != null && images.size() > 0){
			model.addAttribute("id", images.get(0).getId());
			model.addAttribute("relativeUrl", images.get(0).getRelativeUrl());
			model.addAttribute("content", images.get(0).getContent());
		}
		return "sys/food/image";
	}

	/** 5.1.获取菜品图片 */
	@RequestMapping("/sysFoodImage")
	@ResponseBody
	public SysImage sysFoodImage(String id, Model model){
		List<SysImage>  images = null;
		try {
			images = sysImageService.findByLink(id, 2);
			//将所有食物信息的list集合存入model中，带到JSP显示
		} catch(Exception e){
			e.printStackTrace();
		}
		if(images != null && images.size() > 0){
			return images.get(0);
		}
		return null;
	}

}
